home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 090 / pctj8506.arc / ARITH.COB next >
Text File  |  1986-09-14  |  3KB  |  88 lines

  1. `       IDENTIFICATION DIVISION.
  2.        PROGRAM-ID.     ARITH.
  3.  
  4.       *        ARITHMETIC & CHARACTER BENCHMARK
  5.       *        FOR BOTH REALIA & RMCOBOL, W/NO CHANGES
  6.  
  7.        ENVIRONMENT DIVISION.
  8.        CONFIGURATION SECTION.
  9.        SOURCE-COMPUTER.  IBM-PC.
  10.        OBJECT-COMPUTER.  IBM-PC.
  11.  
  12.        DATA DIVISION.
  13.        WORKING-STORAGE SECTION.
  14.        77  A-MAX                    PIC 99999  VALUE 5000.
  15.        77  C-MAX                    PIC 99999  VALUE 500.
  16.        77  N                        PIC 99999.
  17.        77  N-S                      PIC 99.
  18.        77  N-SUM                    PIC 99999.
  19.        77  PRODUCT                  PIC 99999.
  20.        77  TWO                      PIC 99     VALUE 2.
  21.        77  THREE                    PIC 99     VALUE 3.
  22.        77  HALF                     PIC 99999V9.
  23.        77  ARITH-MSG     PIC X(20) VALUE "DECIMAL ARITHMETIC  ".
  24.        77  CHAR-MSG      PIC X(20) VALUE "CHARACTER OPERATIONS".
  25.  
  26.        01  ARRAY-1.
  27.            05  ARRAY-2.
  28.                10  STRING-1        PIC X(10) VALUE "1234567890".
  29.                10  STRING-2        PIC X(10) OCCURS 9 TIMES.
  30.            05  ARRAY-3             REDEFINES ARRAY-2.
  31.                10  WORD            PIC XX    OCCURS 50 TIMES.
  32.  
  33.       * COPY TIMERDAT for Realia, COPY "TIMERDAT.CBL" for RMC
  34.            COPY TIMERDAT.
  35.  
  36.        PROCEDURE DIVISION.
  37.        000-MAINLINE.
  38.            PERFORM 200-ARITH-TEST THRU 200-EXIT.
  39.            PERFORM 300-CHAR-TEST  THRU 300-EXIT.
  40.            STOP RUN.
  41.  
  42.  
  43.        200-ARITH-TEST.
  44.            DISPLAY " ".
  45.            DISPLAY ARITH-MSG.
  46.            ACCEPT TIMER-START FROM TIME.
  47.            PERFORM 220-ARITH-LOOP THRU 220-EXIT
  48.              VARYING N FROM 1 BY 1 UNTIL N > A-MAX.
  49.            ACCEPT TIMER-END FROM TIME.
  50.            PERFORM 2400-CALC-TIME THRU 2400-EXIT.
  51.            DISPLAY ELAPSED-TIME.
  52.        200-EXIT.    EXIT.
  53.  
  54.        220-ARITH-LOOP.
  55.            MULTIPLY N BY THREE GIVING PRODUCT.
  56.            ADD N, PRODUCT GIVING N-SUM.
  57.            DIVIDE N BY TWO GIVING HALF.
  58.        220-EXIT.    EXIT.
  59.  
  60.        300-CHAR-TEST.
  61.            DISPLAY CHAR-MSG.
  62.            ACCEPT TIMER-START FROM TIME.
  63.            PERFORM 320-CHAR-LOOP THRU 320-EXIT C-MAX TIMES.
  64.            ACCEPT TIMER-END FROM TIME.
  65.            PERFORM 2400-CALC-TIME THRU 2400-EXIT.
  66.            DISPLAY ELAPSED-TIME.
  67.        300-EXIT.   EXIT.
  68.  
  69.        320-CHAR-LOOP.
  70.            MOVE STRING-1 TO STRING-2 (1).
  71.            PERFORM 330-CHAR-MOVE THRU 330-EXIT
  72.               VARYING N FROM 2 BY 1 UNTIL N > 9.
  73.            PERFORM 340-CHAR-COMP THRU 340-EXIT
  74.               VARYING N FROM 1 BY 1 UNTIL N > 50.
  75.        320-EXIT.    EXIT.
  76.  
  77.        330-CHAR-MOVE.
  78.            SUBTRACT 1 FROM N GIVING N-S.
  79.            MOVE STRING-2 (N-S) TO STRING-2 (N).
  80.        330-EXIT.    EXIT.
  81.  
  82.        340-CHAR-COMP.
  83.            IF WORD (N) = "56" ADD 1 TO N-SUM.
  84.        340-EXIT.    EXIT.
  85.  
  86.       * COPY TIMERPRO for Realia, COPY "TIMERPRO.CBL" for RMC
  87.            COPY TIMERPRO.
  88.